﻿using SmartRS.com.vn.smartrs.domain;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SmartRS.com.vn.smartrs.form.menu
{
    public partial class frmAddOrder : Form
    {
        #region delegage
        public delegate void GetFoodOrder(FoodOrder foodOrder);
        public event GetFoodOrder getFoodOrder;

        public delegate void SendFood(Food food);
        public SendFood sendFood;
        #endregion delegage
        private Food f;
        public frmAddOrder()
        {
            InitializeComponent();
            sendFood = new SendFood(setFood);
        }

        private void setFood(Food food)
        {
            if (food != null)
            {
                f = food;
            }
            else
            {
                f = new Food();
            }
        }

        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnHoanTat_Click(object sender, EventArgs e)
        {
            int quantityOrder = 0;
            epAddOrder.Clear();
            string error = "";
            if (txtSoLuong.Text.Trim().Equals(""))
            {
                error += "Số lượng không được bỏ trống! \r\n";
                epAddOrder.SetError(txtSoLuong, "Số lượng không được bỏ trống!");
            }
            try
            {
                quantityOrder = Int32.Parse(txtSoLuong.Text.Trim());
            }
            catch (Exception ex)
            {
                error += "Số lượng không hợp lệ! \r\n";
                epAddOrder.SetError(txtSoLuong, "Số lượng không hợp lệ!");
            }
            if (quantityOrder <= 0)
            {
                error += "Số lượng phải lớn hơn 0! \r\n";
                epAddOrder.SetError(txtSoLuong, "Số lượng phải lớn hơn 0!!");
            }
            if (!error.Trim().Equals(""))
            {
                MessageBox.Show(error, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            FoodOrder foodOrder = new FoodOrder();
            if (null != f)
            {
                foodOrder.food = f;

                foodOrder.quantityOrder = quantityOrder;
                foodOrder.discountValue = f.discountValue;
                foodOrder.priceWhenOrder = f.price - f.discountValue;
                foodOrder.foodOrderId = f.foodId;
            }
            else
            {
                foodOrder = null;
            }

            if (getFoodOrder != null)
            {
                getFoodOrder(foodOrder);
                this.Close();
            }
            else
            {
                this.Close();
            }
        }

        private void frmAddOrder_Load(object sender, EventArgs e)
        {
            if (null != f)
            {
                lbTenThucDonVal.Text = f.foodName;
                lbDonViTinhVal.Text = f.foodUnit.foodUnitName;
                lbDonGiaVal.Text = String.Format("{0:#,#}", f.price);
                lbGiaGiamVal.Text = String.Format("{0:#,#}", f.discountValue);
            }
            else
            {
                this.Close();
            }
        }
    }
}
